package tsif.tcluster.service;

import tsif.tcluster.service.proxy.TClusterServiceProxy;

/** 集群服务接口 **/
public interface ITClusterService {

	/** 初始化服务 **/
	boolean init(TClusterServiceProxy serviceProxy, long serviceId, Object... args) throws Exception;

	/** 销毁服务 **/
	void destroy() throws Exception;

	/**
	 * 接收访问处理<br>
	 * 
	 * @param session
	 *            集群连接
	 * 
	 * @param funcName
	 *            访问函数
	 * 
	 * @param args
	 *            访问参数
	 * 
	 * @param ret
	 *            回调接口
	 * 
	 **/
	void dispose(long serviceId, String funcName, Object[] args, IReturn<Object> ret) throws Exception;

	/** 更新服务 **/
	void update();

	/** 访问回调接口 **/
	public interface IReturn<T> {
		void ret(int code, String msg, T retObj);
	}
}
